package com.frxuexi.park.view

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.view.View
import android.widget.AdapterView
import android.widget.ArrayAdapter
import com.alibaba.android.arouter.facade.annotation.Autowired
import com.alibaba.android.arouter.facade.annotation.Route
import com.alibaba.android.arouter.launcher.ARouter
import com.blankj.utilcode.util.ToastUtils
import com.frxuexi.lib_base.entity.ParkBeanItem
import com.frxuexi.lib_base.mvvm.BaseActivity
import com.frxuexi.park.ParkViewModel
import com.frxuexi.park.R
import com.frxuexi.park.databinding.ActivityParkEditBinding
import dagger.hilt.android.AndroidEntryPoint

@Route(path = "/park/ParkEditActivity")
@AndroidEntryPoint
class ParkEditActivity : BaseActivity<ActivityParkEditBinding,ParkViewModel>() {
    @Autowired
    lateinit var pid:String

    var area="A区停车场"
    var type="标准车位"
    var areaId=1
    var status="空闲"
    override fun initData() {
        vm.getParkByIdData.observe(this){
            binding.parkaddCarNo.setText(it.spaceNumber)
            when(it.spaceStatus){
                "空闲"->binding.parkaddRg.check(R.id.rb_kx)
                "已占用"->binding.parkaddRg.check(R.id.rb_zy)
                "维修中"->binding.parkaddRg.check(R.id.rb_wh)
            }
            binding.parkaddUser.setText(it.userName)
            binding.parkaddCarNum.setText(it.licensePlate)
            binding.parkaddRemark.setText(it.remarks)


            val areas = mutableListOf<String>("A区停车场", "B区停车场", "C区停车场")
            if(!areas.contains(it.areaName)){
                areas.add(0,it.areaName)
            }
            val areaAdapter = ArrayAdapter(this, android.R.layout.simple_spinner_item, areas)
            areaAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item)
            binding.parkaddArea.adapter=areaAdapter
            binding.parkaddArea.onItemSelectedListener=object : AdapterView.OnItemSelectedListener {
                override fun onItemSelected(
                    parent: AdapterView<*>?,
                    view: View?,
                    position: Int,
                    id: Long
                ) {
                area=areas[position]
                areaId=position+1
                }

                override fun onNothingSelected(parent: AdapterView<*>?) {
                }

            }

            val types = mutableListOf<String>("标准车位", "VIP车位")
            if(!types.contains(it.spaceType)){
                types.add(0,it.spaceType)
            }
            val typeAdapter = ArrayAdapter(this, android.R.layout.simple_spinner_item, types)
            typeAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item)
            binding.parkaddType.adapter=typeAdapter
            binding.parkaddType.onItemSelectedListener=object : AdapterView.OnItemSelectedListener {
                override fun onItemSelected(
                    parent: AdapterView<*>?,
                    view: View?,
                    position: Int,
                    id: Long
                ) {
                type=types[position]
                }

                override fun onNothingSelected(parent: AdapterView<*>?) {
                }

            }
        }

        vm.updateParkData.observe(this){
            ToastUtils.showLong("编辑成功")
            finish()
        }
    }

    override fun initView() {
        ARouter.getInstance().inject(this)
        vm.getParkById(pid.toInt())

        binding.headParkAdd.apply {
            headerBack.setOnClickListener {
                finish()
            }
            headerTitle.setText("编辑车位")
            headerAdd.setImageResource(com.frxuexi.lib_base.R.drawable.ic_action_ok)
            headerAdd.setOnClickListener {
                val carNo = binding.parkaddCarNo.text.toString()
                val remark = binding.parkaddRemark.text.toString()
                val user = binding.parkaddUser.text.toString()
                val carNum = binding.parkaddCarNum.text.toString()
                val item = ParkBeanItem(areaId,area,null,carNum,remark,carNo,status,
                    type,0,user)
                vm.updatePark(pid.toInt(),item)
            }
        }

        binding.parkaddRg.setOnCheckedChangeListener { group, checkedId ->
            when(checkedId){
                R.id.rb_kx->status="空闲"
                R.id.rb_zy->status="已占用"
                else->status="维修中"
            }
        }
    }



}